1. Field of the Invention
This invention relates to the field of software architecture. More particularly, this invention relates to modular software architecture organized by layers and segments which can be applied to systems which contain multiple domains or functionality, such as unmanned aerial vehicles (UAVs).
2. Background
The military, police, rescue, scientific, and commercial communities use unpiloted aircraft, such as UAVs. One definition of a UAV is an unmanned device capable of controlled, sustained, and powered flight. As such, the designs of UAVs consist of aircraft of various sizes, capabilities, and weights. A typical UAV consists of a propulsion device, such as an engine, a navigation system, one or more payload sensors, communication equipment, and possibly cargo. The sensors may provide information to a ground observer about the terrain the UAV overflies, such as video information about a lost hiker in a rescue application, information from laser and/or biological sensors about environmental conditions in a scientific or security application, or a combination of video, laser, biological and other sensors concerning battlefield conditions in a military application. The cargo may be munitions, food, medicine, and/or other goods depending on the mission of the UAV. As technology improves, the design of the UAV may change to integrate new and/or improved sensors, navigation systems, propulsion devices, and the like.
As the UAV is unmanned, computer software executing on one or more processors aboard the UAV partially or completely controls the UAV. The computer software may control the various functions performed by the UAV, perhaps with the aid of the ground observer.